Printers receive input data from a source such as a host computer and produce printed output based upon the received data. In a page printer, for example, received data is stored and used to produce a data bit representation of a page to be printed (during rasterization), and the bit data image of the page is then moved to a print mechanism for physical printing (during serialization). In an electrophotographic laser page printer, the serialized bit data modulates a laser beam swept across a photoconductor.
In the case of input text data, rasterization usually involves copying bit images of characters from character fonts into a bit map memory to produce the bit data representation of the desired page. Coded representations of the characters to be rasterized, together with coded representations of commands for positioning the characters on a page to be printed, are held in a page buffer which is formatted in some fashion to facilitate rasterization.
In a page printer lacking sufficient memory for storing a bit map of an entire page to be printed, a swathing architecture is employed. In a swathing architecture, a page in the page buffer to be printed is rasterized into a series of contiguous raster line blocks referred to as swaths. Rasterization is accomplished iteratively, rasterizing a portion of the page into each swath as the swath is made available, until the entire page has been completed.
Graphic and other image data to be printed is generally sent from a host to a printer in a form other than that of coded text characters. Some image data is provided from the host in raster format, which may be received and stored by the printer for subsequent rasterization into bit map memory or placed directly into bit map memory. Graphic image data may also be represented by commands, such as for drawing lines and shapes. Command structures exist, for example, for providing plotter commands to a pen plotter. Page printers are available which have the capability of operating in a mode in which the printer can interpret pen plotter commands to rasterize and print the graphic image represented by the commands.
When a page printer operates in a mode to interpret and rasterize plotter commands, the variety and quality of fonts used for text printing are unavailable to the printer. Changing modes of printer operation, from plotter mode to text mode for example, typically results in the printing of a page before the mode change so that mixing plotter graphics with text on a page is impossible using a printer mode change. In order to combine plotter graphics on the same page as text, it is necessary for the application software run by the host computer to convert plotter graphics commands to either a text character approximation or raster image data before sending the data to the printer. The text character approximations are not particularly accurate, and sending raster image data to the printer requires host processing resources to convert the plotter graphics commands. Producing raster images of plotter graphics commands at the host also greatly increases host memory requirements. A source file of less than one hundred bytes of graphics commands can result in converted raster image data of as much as one million bytes. Sending the raster image data from the host to the printer also takes a much greater amount of time than sending the graphics commands.
It is the general aim of the present invention to provide a page printer capable of mixing text data and image data, represented by graphic commands, on a page to be printed, without the foregoing disadvantages.